package main

import (
	"fmt"
	"net/http"
	"os"
	"os/signal"
	"syscall"

	"github.com/gin-gonic/gin"
)

func main() {
	//	优雅推出,当我们关闭程序的时候应该做的后续处理
	//微服务启动之前或者启动之后会做一件事:将当前的服务的ip地址和端口号注册到注册中必
	//我们当前的服务停止了以后并没有告知注册中心
	router := gin.Default()
	router.GET("/", func(c *gin.Context) {
		c.JSON(http.StatusOK, gin.H{
			"msg": "pong",
		})
	})
	go func() {
		_ = router.Run(":8083")
	}()
	//如果想要接收到信号
	quit := make(chan os.Signal)
	// SIGINT：ctrl+c     SIGTERM：kill进程          kill -9不会捕捉到
	signal.Notify(quit, syscall.SIGINT, syscall.SIGTERM)
	<-quit
	//处理后续的逻辑   先是主协程挂掉  再是子协程
	fmt.Println("关闭server中。。。")
	fmt.Println("注销服务。。。")
}
